package com.wing.product.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.wing.common.utils.JsonResult;
import com.wing.product.model.entity.Product;
import com.wing.product.model.entity.ProductDetail;
import com.wing.product.model.request.ProductDetailForm;
import com.wing.product.model.request.ProductForm;
import com.wing.product.model.response.ProductDetailVO;
import org.springframework.web.bind.annotation.RequestParam;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

public interface MostUsedKnifeListService  {


    /*删除*/
    boolean removeById(Long id);
    boolean removeDetailById(Long id);



    /*判断product表是否存在*/
    HashMap existById(Long productId);

    /*查询已经导入过的产品*/
    List<String> findAllDetailId();

    /*删除时判断是否为detail表的最后一条*/
    int countDetail(Long id);


    Page<ProductDetailVO> findAll(Page page, Map<String, Object> params);

    /**
     * 添加
     *
     * @param productForm
     * @return
     */
    void add(ProductForm productForm) throws Exception;

    /**
     * 删除常用产品包
     * @param ids
     */
    void deleteMostUsedKnifeList(String ids) throws Exception;

    void saveSelfPickProduct(ProductForm productForm);

    void addLocalManualImport(List<ProductDetailForm> list);

    boolean updateById(ProductDetail productDetail);

    /**
     * 添加产品（简版）
     * @param productForm
     */
    void addCompactProduct(ProductForm productForm);

    /**
     * 产品（简版）
     * @param productForm
     */
    void updateCompactProduct(ProductForm productForm);

     JsonResult isOnlyCode(String code, Long id);
    Page<ProductDetailVO> findAllCancellationMaterial(Page page, Map<String, Object> params);
}
